<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<!--[if lt IE 9]>
  <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<![endif]-->
<title>VIM 中文用户手册: 利用 GUI</title>
<link rel="stylesheet" href="vim-stylesheet.css" type="text/css" />
<link rel="canonical" href="https://yianwillis.github.io/vimcdoc/doc/usr_31.html" />
<script type="text/javascript" src="vimcdoc.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<body>
<nav id=banner>
<form action=tags.html target="tag_iframe">
  <input type="text" name="tag" id="tag" placeholder="标签搜索">
</form>
<iframe name="tag_iframe" src=""></iframe>
<a href="help.html">帮助总览</a> &middot;
<hr/>
<a href="quickref.html">快速参考</a> &middot;
<a href="index.html">命令索引</a> &middot;
<a href="eval.html#functions">函数列表</a> &middot;
<a href="quickref.html#option-list">选项列表</a> &middot;
<hr/>
<a href="usr_toc.html">用户手册</a> &middot;
<a href="help.html#reference_toc">参考手册</a> &middot;
</nav>

<header>
<h2>usr_31</h2>
</header>
<article id=outer>
<section class=inner>
<b class="vimtag"> <a name="usr_31.txt">usr_31.txt</a> </b>    适用于 Vim 9.0 版本。   最近更新: 2020年9月

                     <code class="vim">VIM 用户手册 - by Bram Moolenaar</code>
                                <code class="vim">译者</code>: lang2

                              利用 GUI


Vim 可以很好地在终端内工作，但是 GUI 也有其优点。比如: 一个使用文件的命令可以
利用文件浏览器，需要作选择时可以利用对话框。使用快捷键可以更方便的使用菜单。

 <a href="usr_31.html#31.1">31.1</a>   文件浏览器
 <a href="usr_31.html#31.2">31.2</a>   确认
 <a href="usr_31.html#31.3">31.3</a>   菜单快捷键
 <a href="usr_31.html#31.4">31.4</a>   Vim 窗口位置及大小
 <a href="usr_31.html#31.5">31.5</a>   杂项

        后一章:  <a href="usr_32.html#usr_32.txt">usr_32.txt</a>   撤销树
        前一章:  <a href="usr_30.html#usr_30.txt">usr_30.txt</a>   编辑程序
          目录:  <a href="usr_toc.html#usr_toc.txt">usr_toc.txt</a> 

</section><hr class="doubleline" /><section class=inner>
<h4><b class="vimtag"> <a name="31.1">31.1</a> </b>  文件浏览器</h4>
在使用 File/Open... 菜单的时候你会看到一个文件浏览器。这会使你更容易找到要编辑
的文件。但是如果你想把窗口分割并编辑另一个文件呢？没有一个菜单项是做这个的。你
当然可以先用 Window/Split 然后再用 File/Open...，但这样适得其反。
   大多数时候你使用 Vim 都是键入命令的，同样，打开一个文件浏览器也可以。为了让
split 命令使用文件浏览器，在它前面加上 "browse" 就行了: 
<code class="example"></code>
<code class="example">        :browse split</code>
<code class="example"></code>
选中一个文件后 ":split" 命令就会与其一起被执行。如果你取消文件对话框就什么都不
会发生。当前窗口也不会被分割。
   你也可以指定一个文件名作为参数。这将告诉浏览器从那里开始查找文件。例如: 
<code class="example"></code>
<code class="example">        :browse split /etc</code>
<code class="example"></code>
文件浏览器将以 "/etc" 作为起始目录。

":browse" 命令几乎可被添加在任何打开文件的命令前。
   如果没有指定目录，Vim 会自己决定从哪里开始浏览。缺省情况 Vim 会从上次同样的
目录开始。这样当你用 ":browse split" 命令并选中了一个 "/usr/local/share" 里的
文件，下次你在用 ":browse" 时，浏览将从 "/usr/local/share" 开始。
   用 <a href="options.html#'browsedir'">'browsedir'</a> 选项可以改变浏览的启动目录。可能的选项值包括:

        last            使用上次的目录 (缺省)
        buffer          使用当前缓冲区所在的目录
        current         使用当前目录

例如，当你在 "/usr" 目录内编辑文件 "/usr/local/share/readme" 时，那么命令: 
<code class="example"></code>
<code class="example">        :set browsedir=buffer</code>
<code class="example">        :browse edit</code>
<code class="example"></code>
会从 "/usr/local/share" 开始浏览，类似地: 
<code class="example"></code>
<code class="example">        :set browsedir=current</code>
<code class="example">        :browse edit</code>
<code class="example"></code>
会从 "/usr" 开始浏览。

        <code class="note">备注</code>:
        为了避免使用鼠标，多数文件浏览器提供键盘操作。这些操作因系统而异，这里
        不作解释。可能的情况下 Vim 使用系统的标准浏览器。请参阅你所用系统的文
        档。

当你不是使用 GUI 版本时，你也可以使用文件浏览窗口来选择文件。然而，":browse"
命令就无效了。参阅  <a href="pi_netrw.html#netrw-browse">netrw-browse</a> 。

</section><hr class="doubleline" /><section class=inner>
<h4><b class="vimtag"> <a name="31.2">31.2</a> </b>  确认</h4>
Vim 会保护你的文件不被意外的覆盖或者其它的信息丢失。如果你要作一些可能有危险的
事，Vim 会以一个错误信息提醒你并建议在命令后加上 ! 来确认你希望进行该操作。
   为了避免重新输入一个带有 ! 的命令，你可以要求 Vim 用一个对话框来向你询问。
你就可以选择 "OK" 或 "Cancel" 来告诉 Vim 你的要求。
   例如，你正在编辑一个文件并做了一些改动。你要开始编辑另一个文件: 
<code class="example"></code>
<code class="example">        :confirm edit foo.txt</code>
<code class="example"></code>
Vim 会弹出一个类似下面的对话框:

        +-----------------------------------+
        |                                   |
        |   ?   Save changes to "bar.txt"?  |
        |                                   |
        |   YES   NO             CANCEL     |
        +-----------------------------------+

你可以作选择了。如果你希望保存变动，选择 "YES"。如果你想放弃变动: "NO"。如果你
想放弃编辑新文件的操作而返回来看看自己都做了那些改动用 "CANCEL"。 你会回到原来
的文件，你所做的改动也都还在。

就像 ":browse" 一样，":confirm" 命令也可以被加在多数编辑其它文件的命令之前。你
还可以把它们两个联起来用: 
<code class="example"></code>
<code class="example">        :confirm browse edit</code>
<code class="example"></code>
如果当前缓冲区被改动的话这个命令会产生一个对话框。接着会弹出一个文件浏览器来选
择将要编辑的文件。

        <code class="note">备注</code>:
        在对话框中你可以使用键盘来作选择操作。通常来说 <code class="special">&lt;Tab&gt;</code> 键和光标键可以改
        变选项。键入 <code class="special">&lt;Enter&gt;</code> 会确认选项。但这也跟你用的系统有关。

当你不是使用 GUI 版本的时候，":confirm" 也是有效的。Vim 不会弹出一个对话框，而
是将询问显示在 Vim 窗口的底部并提示你键入选择。 
<code class="example"></code>
<code class="example">        :confirm edit main.c</code>
<code class="section">        Save changes to "Untitled"? </code>
<code class="section">        <code class="special">[Y]</code>es, (N)o, (C)ancel:  </code>

你可以键入单键来作出选择。不用键入 <code class="special">&lt;Enter&gt;</code>，这和其它命令行的输入不同。

</section><hr class="doubleline" /><section class=inner>
<h4><b class="vimtag"> <a name="31.3">31.3</a> </b>  菜单快捷键</h4>
所有的 Vim 命令都是用键盘来完成的。在不知道命令名称的情况下，使用菜单会简单
些。但是你就得把手从键盘上移开去抓鼠标。
   通常菜单用键盘也可以操作。这决定于你所使用的系统，但多数情况下是这样工作
的: 将 <code class="special">&lt;Alt&gt;</code> 键和菜单项中带下划线的字母连用。例如，<code class="special">&lt;A-w&gt;</code> (<code class="special">&lt;Alt&gt;</code> 加 w) 弹出
Window 菜单。
   在 Window 菜单下，"split" 菜单项中的 p 下面划了线。放开 <code class="special">&lt;Alt&gt;</code> 键然后按 p 就
可以选中它了。

在用 <code class="special">&lt;Alt&gt;</code> 键选中菜单后，你可以用光标键来在菜单内移动。<code class="special">&lt;Right&gt;</code> 选择一个子菜
单，<code class="special">&lt;Left&gt;</code> 关闭之。<code class="special">&lt;Esc&gt;</code> 也用来关闭菜单。<code class="special">&lt;Enter&gt;</code> 选中一个菜单项。

使用 <code class="special">&lt;Alt&gt;</code> 键来操作菜单和使用 <code class="special">&lt;Alt&gt;</code> 键的映射会出现冲突。<a href="options.html#'winaltkeys'">'winaltkeys'</a> 可以用来
告诉 Vim 如何对待 <code class="special">&lt;Alt&gt;</code> 键。
   缺省值 "menu" 是一个明智的选择: 如果该键组合是一个菜单快捷键那么就不能被作
为映射。所有其它的键都可以。
    "no" 表示不使用 <code class="special">&lt;Alt&gt;</code> 键组合来操作菜单。这样你就必须使用鼠标。所有 <code class="special">&lt;Alt&gt;</code>
键组合都可以被用作键盘映射。
    "yes" 表示 Vim 会使用 <code class="special">&lt;Alt&gt;</code> 键组合来操作菜单。另外的 <code class="special">&lt;Alt&gt;</code> 键组合也可以用
作其它用途。

</section><hr class="doubleline" /><section class=inner>
<h4><b class="vimtag"> <a name="31.4">31.4</a> </b>  Vim 窗口位置及大小</h4>
要查看当前 Vim 窗口在屏幕上的位置可以用: 
<code class="example"></code>
<code class="example">        :winpos</code>
<code class="example"></code>
这只对 GUI 有效。输出可能是这样的:

<code class="section">        Window position: X 272, Y 103 </code>

位置是以屏幕像素为单位的。你可以通过数字来将 Vim 窗口移动到别处。例如，将其向
左移动一百个像素: 
<code class="example"></code>
<code class="example">        :winpos 172 103</code>

        <code class="note">备注</code>:
        报告的窗口位置和窗口被移动的位置可能会有小的出入。这是由窗口周围的边框
        引起的。边框是被窗口管理器加上的。

你可以在你的启动脚本中使用这个命令来将窗口定位到一个指定的位置。

Vim 窗口的大小是以字符数目计算的。因此它和所使用的字体的大小有关。你可以查看当
前的窗口大小: 
<code class="example"></code>
<code class="example">        :set lines columns</code>
<code class="example"></code>
要改变窗口大小只要改变 <a href="options.html#'lines'">'lines'</a> 和/或 <a href="options.html#'columns'">'columns'</a> 选项的值即可: 
<code class="example"></code>
<code class="example">        :set lines=50</code>
<code class="example">        :set columns=80</code>
<code class="example"></code>
取得窗口大小的操作在终端和在 GUI 上都可以。但是设定大小在绝大多数终端里都是不
可能的。

在启动 X-Window 版本的 gvim 时你可以在命令行指定窗口的位置和大小: 
<code class="example"></code>
<code class="example">        gvim -geometry {width}x{height}+{x-offset}+{y-offset}</code>
<code class="example"></code>
<code class="special">{width}</code> 和 <code class="special">{height}</code> 的单位是字符。<code class="special">{x-offset}</code> 和 <code class="special">{y-offset}</code> 的单位是像素。例: 
<code class="example"></code>
<code class="example">        gvim -geometry 80x25+100+300</code>
<code class="example"></code>
</section><hr class="doubleline" /><section class=inner>
<h4><b class="vimtag"> <a name="31.5">31.5</a> </b>  杂项</h4>
你可以使用 gvim 来编辑一个 e-mail。在你的 e-mail 程序里你得选择 gvim 作为其编
辑程序。当你尝试这种配置的时候，你会发现行不通: 邮件程序认为编辑已经结束了，可
实际上 gvim 还在运行着！
   这里的情况是由于 gvim 启动时会将自己从外壳分离出来的缘故。如果你是从终端启
动 gvim 的话这当然没有问题，你还可以在外壳里作其它事。但如果你的确希望等待
gvim 结束的话，你必须阻止这个分离动作。"-f" 参数就是用来做这个的: 
<code class="example"></code>
<code class="example">        gvim -f file.txt</code>
<code class="example"></code>
"-f" 代表前台 (foreground)。这样 Vim 就会挂起它启动所在的外壳，直到你编辑完毕
并退出为止。


推 迟 启 动 GUI

在 Unix 上你可以先在终端里启动 Vim。当你在一个外壳里完成各种不同任务的时候这很
有方便。如果当你在编辑某个文件时决定你想使用 GUI，你可以这样做: 
<code class="example"></code>
<code class="example">        :gui</code>
<code class="example"></code>
Vim 就会打开 GUI 窗口并不再使用终端。你可以继续在终端里作其它事情。"-f" 参数在
这里也可以用来将 GUI 放置在前台: ":gui -f"。


GVIM 启 动 文 件

当 gvim 启动时，它会读取 gvimrc 文件。这和启动 Vim 时用到的 vimrc 文件类似。
gvimrc 文件可以被用来为 GUI 设定专用的选项和命令。例如，你可以设定 <a href="options.html#'lines'">'lines'</a> 的
值来指定窗口的大小: 
<code class="example"></code>
<code class="example">        :set lines=55</code>
<code class="example"></code>
在终端里使用是没有用的，因为它的大小是固定的 (除了那些支持调整大小的 xterm)。
   Vim 在 vimrc 文件相同的地方找寻 gvimrc 文件。通常来说在 Unix 上是
"~/.gvimrc"； MS-Windows 上是 "$VIM/_gvimrc"。$MYGVIMRC 环境变量设为该值，这样
你可以用下面的命令编辑此文件，如果有的话: 
<code class="example"></code>
<code class="example">        :edit $MYGVIMRC</code>

   如果出于某种原因你不想使用通常的 gvimrc 文件，你可以利用 "-U" 参数来指定另
外的一个: 
<code class="example"></code>
<code class="example">        gvim -U thisrc ...</code>
<code class="example"></code>
这使你可以用 gvim 来做另外一类编辑。例如你可以用另外的字体大小。
   要完全跳过读取 gvimrc 文件: 
<code class="example"></code>
<code class="example">        gvim -U NONE ...</code>
<code class="example"></code>
</section><hr class="doubleline" /><section class=inner>
<h4></h4>下一章:  <a href="usr_32.html#usr_32.txt">usr_32.txt</a>  撤销树

版权: 参见  <a href="usr_01.html#manual-copyright">manual-copyright</a>   vim:tw=78:ts=8:noet:ft=help:norl:
</section>
</article>
<footer>
Generated by vim2html
</footer>
</body>
</html>
